﻿namespace Airborne.ScrumPoker.Communication
{
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
    [System.ServiceModel.ServiceContractAttribute(Namespace = "AirborneScrumPoker", ConfigurationName = "IScrumPokerServer", CallbackContract = typeof(IScrumPokerCallback), SessionMode = System.ServiceModel.SessionMode.Required)]
    public interface IScrumPokerServer
    {


        [System.ServiceModel.OperationContractAttribute(Action = "AirborneScrumPoker/IScrumPokerServer/Subscribe", ReplyAction = "AirborneScrumPoker/IScrumPokerServer/SubscribeResponse")]
        bool Subscribe(string clientName);

        [System.ServiceModel.OperationContractAttribute(IsTerminating = true, Action = "AirborneScrumPoker/IScrumPokerServer/Unsubscribe", ReplyAction = "AirborneScrumPoker/IScrumPokerServer/UnsubscribeResponse")]
        void Unsubscribe();

        [System.ServiceModel.OperationContractAttribute(IsOneWay = true, Action = "AirborneScrumPoker/IScrumPokerServer/Vote")]
        void Vote(double cardValue);

        [System.ServiceModel.OperationContractAttribute(IsOneWay = true, Action = "AirborneScrumPoker/IScrumPokerServer/StartTimer")]
        void StartTimer(int seconds);

        [System.ServiceModel.OperationContractAttribute(IsOneWay = true, Action = "AirborneScrumPoker/IScrumPokerServer/StopTimer")]
        void StopTimer();

        [System.ServiceModel.OperationContractAttribute(IsOneWay = true, Action = "AirborneScrumPoker/IScrumPokerServer/SelectWorkItem")]
        void SelectWorkItem(string title, string description);

        [System.ServiceModel.OperationContractAttribute(IsOneWay = true, Action = "AirborneScrumPoker/IScrumPokerServer/ResetVote")]
        void ResetVote();

        [System.ServiceModel.OperationContractAttribute(IsOneWay = true, Action = "AirborneScrumPoker/IScrumPokerServer/EndGame")]
        void EndGame();

    }





}
